import { defineStore } from "pinia"
import { ref } from "vue"

// 定义一个用户状态管理的存储
export const useUserStore = defineStore(
  "user",
  () => {
    // 定义一个响应式的 token 状态，用于存储用户的认证令牌
    const token = ref<string>("")
    const userId = ref<string>("")

    // 获取当前 token 的值
    const getToken = () => {
      return token.value
    }

    // 设置 token 的值
    const setToken = (value: string) => {
      token.value = value
    }

    // 清除 token 的值
    const clearToken = () => {
      token.value = ""
    }
    // 获取当前 userId 的值
    const getUserId = () => {
      return userId.value
    }
    // 设置 userId 的值
    const setUserId = (value: string) => {
      userId.value = value
    }
    // 清除 userId 的值
    const clearUserId = () => {
      userId.value = ""
    }

    // 返回定义的状态和操作，以便外部访问和使用
    return {
      token,
      userId,
      getToken,
      setToken,
      clearToken,
      getUserId,
      setUserId,
      clearUserId,
    }
  },
  {
    // 开启持久化选项，以便在本地存储中保存状态
    persist: true,
  }
)
